草庐IT

dictionary - 将 map[string]string 转换为 map[someStruct]string

全部标签

Go函数写入同一个 map

我正在尝试熟悉goroutines。我编写了以下简单程序来将1-10的数字平方存储在map中。funcmain(){squares:=make(map[int]int)varwgsync.WaitGroupfori:=1;i最后,它会打印一张空map。但是在go中,map是通过引用传递的。为什么打印一张空map? 最佳答案 正如评论中指出的,您需要同步对map的访问,您对sync.WaitGroup的使用不正确。试试这个:funcmain(){squares:=make(map[int]int)varlocksync.Mutexva

map 上的 golang 类型断言令人 panic

这个问题在这里已经有了答案:Convertmap[interface{}]interface{}tomap[string]string(3个答案)关闭3年前。map上的类型断言不起作用,这是正确的方法吗?详细说明一下,我的目标是返回一个具有动态类型的map。此示例仅用于演示。packagemainimport"fmt"funcmain(){m:=hello().(map[string]int)fmt.Println(m)}funchello()interface{}{returnmap[string]interface{}{"foo":2,"bar":3,}}panicpanic:in

string - GoLang 将字符串放入 map

因此,我正在尝试向从toml创建的现有map添加一个字符串。http://hastebin.com/vayolavose当我尝试构建时出现错误:./web.go:56:复制的参数有不同的元素类型:[]proxy.Address和string我将如何转换它?过去大约4个小时我一直在尝试这个。谢谢 最佳答案 而下面的代码就是你的源代码funchandleAddFunc(whttp.ResponseWriter,r*http.Request){backend:=r.FormValue("backend")key:=r.FormValue(

swift - 将 json 编码时间转换为 nsdate

当我将time.Now()编码到JSON对象时,它给出的结果为"2009-11-10T23:00:00Z"但打印时间。现在给出2009-11-1023:00:00+0000UTC。他们为什么不同。什么是T和Z。另外,如何根据this将其转换为swiftNSDate对象?表? 最佳答案 这些值的含义无关紧要,它们是该格式(ISO8601)的一部分。有几种方法可以解决这个问题。一种是为时间或您的结构定义自定义MarshalJSON()方法并使用它来格式化日期,另一种是首先在您的结构中将其表示为字符串,以便当默认实现执行你得到你正在寻找的

go - 使用 structs 、 maps 或其他东西?

我是Go的新手(在一定程度上是编程新手),所以使用边学边练的方法。对于下面的代码(提取天气预报),我希望从我的列表中填充经度和纬度。我不完全确定如何首先设置该列表-使用结构,然后将存储的结构的值通过管道传递到此代码中?我试过了,似乎我只能在一个结构中容纳一对经/纬度。我正在考虑使用map,但无法弄清楚如何进行设置。也许,我应该将值列表存储在一个文本文件中并从那里读取:p:=Place{placeName:"Accra",lat:"43.6595",long:"-79.3433",placeName:"Kumasi",lat:"43.6595",long:"-79.3433",place

string - 为什么使用 Golang 设置的文件权限与预期不同?

funcstringToInt(sstring)int{i,err:=strconv.Atoi(s)check(err)returni}os.FileMode(stringToInt("0777"))当不需要转换为int时(不删除前导零)通过直接设置权限:os.FileMode(0777)文件权限正确当前结果777777-r----x--x753753--wxrw---x500500-rwxrw-r--预期结果777-rwxrwxrwx753-r-xr-x-wx500-r-x------ 最佳答案 根据@AdamSmith和@Jam

c# - Go语言中Char到Ascii int的转换

我们有一个从C#.Net到Go语言的项目迁移。我已经完成了大部分,但我被困在一个地方。在C#中,我有一个代码,(int)char我怎么用Go语言写这个? 最佳答案 Go中没有“char”类型,最接近的是rune,它是int32的别名。作为int32的别名意味着类型int32和rune是相同的,您可以将rune像一个int32数字(这样你就可以比较它,加上/减去它等等)。但是要知道Go对类型很严格,你不能比较不同类型的值(在你的回答中,你将它与一个无类型的整数常量进行比较,这是可以的)。例如下面的代码是一个编译时错误:varrrune

http - GoLang 不匹配的类型 []string 和 string

我正在尝试在Go语言上编写httpapi。当我比较2个字符串时,我收到此错误“无效操作:a.TypeI==m["type"][0](类型[]字符串和字符串不匹配)”。我该如何解决,有人可以帮忙吗?funclistHandler(whttp.ResponseWriter,r*http.Request){u,errUrl:=url.Parse(r.URL.String())check(errUrl)m,_:=url.ParseQuery(u.RawQuery)dat,err:=ioutil.ReadFile("data.json")check(err)varbasedataBaseData

string - 如何从 golang 中的字符串制作预告片?

我想通过从任意utf8输入字符串content中删除前几个单词(除以空格)来制作预告片。我想到的是这个:runes:=[]rune(content)teaser:=string(runes[0:75])问题是上面的代码在中间切断了单词。我想要的是在(比如说第十个)字的末尾剪掉,以制作漂亮的预告片。我怎样才能做到这一点? 最佳答案 functeaser(sstring,wordCountint)string{words:=strings.Fields(s)iflen(words)...其中s是您的完整字符串,wordCount是要包含

go - golang接口(interface)如何转换数组?

packagemainfunctest(){arr:=[]string{"1","2","3",}inter:=ArrayToInterface(arr)//interfacetoarray}funcArrayToInterface(tinterface{})interface{}{returnt}数组被传递给函数并转换为接口(interface)类型。现在如何将其转换为数组 最佳答案 使用类型断言for_,i:=rangeinter.([]string){fmt.Println(i)}